package com.un.ebs.invoice.domain;

import java.util.Date;
import com.un.ebs.invoice.enums.InvoiceTypeEnum;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.stereotype.Component;
import lombok.Data;
import com.un.ebs.core.metadata.DbField;

/**
 * (InvoiceNote)表实体类
 *
 * @author makejava
 * @since 2021-06-23 10:37:28
 */
@Data
@Component
@TableName("tb_invoice_note")
@SuppressWarnings("serial")
public class InvoiceNote extends Model<InvoiceNote> {

    @TableId(value = "id", type = IdType.UUID)
    private String id;
    
                
    @DbField(name = "ent_id",  length = 40 , precision = 0)
    private String entId;
                
    @DbField(name = "invoice_type",  length = -1 , precision = 0)
    private InvoiceTypeEnum invoiceType;
                
    @DbField(name = "code",  length = -1 , precision = 0)
    private Integer code;
                
    @DbField(name = "contract_code",  length = 20 , precision = 0)
    private String contractCode;
                
    @DbField(name = "tax_rate",  length = 10 , precision = 2)
    private Double taxRate;
                
    @DbField(name = "tax_money",  length = 18 , precision = 4)
    private Double taxMoney;
                
    @DbField(name = "source_money",  length = 18 , precision = 4)
    private Double sourceMoney;
                
    @DbField(name = "cash_money",  length = 18 , precision = 4)
    private Double cashMoney;
                
    @DbField(name = "cash_time",  length = -1 , precision = 0)
    private Date cashTime;
                
    @DbField(name = "cash_at_name",  length = 100 , precision = 0)
    private String cashAtName;
                
    @DbField(name = "cash_status",  length = -1 , precision = 0)
    private Boolean cashStatus;
        
    @TableField(fill = FieldFill.INSERT)            
    @DbField(name = "create_time",  length = -1 , precision = 0)
    private Date createTime;
        
    @TableField(fill = FieldFill.INSERT)            
    @DbField(name = "create_at",  length = 40 , precision = 0)
    private String createAt;
        
    @TableField(fill = FieldFill.INSERT)            
    @DbField(name = "create_at_name",  length = 100 , precision = 0)
    private String createAtName;
                
    @DbField(name = "submit_at",  length = 40 , precision = 0)
    private String submitAt;
                
    @DbField(name = "submit_at_name",  length = 100 , precision = 0)
    private String submitAtName;
                
    @DbField(name = "submit_status",  length = -1 , precision = 0)
    private Boolean submitStatus;
                
    @DbField(name = "submit_time",  length = -1 , precision = 0)
    private Date submitTime;
                
    @DbField(name = "audit_at",  length = 40 , precision = 0)
    private String auditAt;
                
    @DbField(name = "audit_at_name",  length = 100 , precision = 0)
    private String auditAtName;
                
    @DbField(name = "audit_time",  length = -1 , precision = 0)
    private Date auditTime;
                
    @DbField(name = "audit_status",  length = -1 , precision = 0)
    private Boolean auditStatus;
            
    @TableLogic        
    @DbField(name = "is_delete",  length = -1 , precision = 0)
    private Boolean isDelete;
                
    @DbField(name = "remark",  length = 100 , precision = 0)
    private String remark;
                
    @DbField(name = "tenant_id",  length = 40 , precision = 0)
    private String tenantId;
                
    @DbField(name = "finance_id",  length = 10 , precision = 0)
    private String financeId;
                
    @DbField(name = "finance_code",  length = 10 , precision = 0)
    private String financeCode;
                
    @DbField(name = "finance_send_time",  length = -1 , precision = 0)
    private Date financeSendTime;
                
    @DbField(name = "workflow_instance_id",  length = 40 , precision = 0)
    private String workflowInstanceId;
                
    @DbField(name = "workflow_pass_status",  length = -1 , precision = 0)
    private Boolean workflowPassStatus;
                
    @DbField(name = "invoice_date",  length = -1 , precision = 0)
    private Date invoiceDate;
                
    @DbField(name = "invoice_no",  length = 100 , precision = 0)
    private String invoiceNo;
                
    @DbField(name = "personnel_id",  length = 40 , precision = 0)
    private String personnelId;
                
    @DbField(name = "personnel_name",  length = 100 , precision = 0)
    private String personnelName;
                
    @DbField(name = "is_back",  length = -1 , precision = 0)
    private Boolean isBack;

    @DbField(name = "back_note_id",  length = 40 , precision = 0)
    private String backNoteId;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }
    
}